import pickle

"""
数据的持久化

pickle 模块
python的pickle模块实现了基本的数据序列和反序列化。
    通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去，永久存储。
    通过pickle模块的反序列化操作，我们能够从文件中创建上一次程序保存的对象。

基本接口：
    pickle.dump(obj, fileObj, [,protocol])
    obj = pickle.load(fileObj)
"""
filepath = 'runtime/ds.pkl'
# 使用pickle模块将数据对象保存到文件
data1 = {'a': [1, 2.0, 3, 4 + 6j],
         'b': ('string', u'Unicode string'),
         'c': None}

selfref_list = [1, 2, 3]

output = open(filepath, 'wb')
# Pickle dictionary using protocol 0.
pickle.dump(data1, output)

# Pickle the list using the highest protocol available.
pickle.dump(selfref_list, output, -1)
output.close()

pkl_file = open(filepath, 'rb')

data1 = pickle.load(pkl_file)
data2 = pickle.load(pkl_file)

print('data1 :', data1)
print('data2 :', data2)
pkl_file.close()
